home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 March / PCWorld_2007-03_cd.bin / komunikace / acehtml / acehtmlfreeware.exe / scriptdef / Amortization Calculator.sd < prev    next >
INI File  |  2006-09-13  |  7KB  |  290 lines

  1. [SUBJECT]
  2. Description=Calculate amortization schedule
  3. ImageIndex=-1
  4. Folder=Mathematics
  5.  
  6.  
  7. [HEAD_TEXT]
  8. ;<!-- Cut-N-Paste JavaScript from ISN Toolbox 
  9. ;     Copyright 1996, Infohiway, Inc.  Restricted use is hereby
  10. ;     granted (commercial and personal OK) so long as this code
  11. ;     is not *directly* sold and the copyright notice is buried
  12. ;     somewhere deep in your HTML document.  A link to our site
  13. ;     http://www.infohiway.com is always appreciated of course,
  14. ;     but is absolutely and positively not necessary. ;-)   -->
  15. ;<script language="JavaScript">
  16. ;<!--Hide JavaScript from Java-Impaired Browsers
  17. ;var num=0;
  18. ;var amt=0;
  19. ;var per=0;
  20. ;var months=0;
  21. ;var nls="";
  22. ;var rr="\r";
  23. ;var b="                               ";
  24. ;var d="-----------------------------"
  25. ;+"----------------------------------";
  26. ;var s="$";
  27. ;function iA(){
  28. ; this.length=iA.arguments.length;
  29. ; for (var i=0;i<this.length;i++){
  30. ;  this[i]=iA.arguments[i];
  31. ;  }
  32. ; }
  33. ;var pwr=new iA(10);
  34. ;var dec=new iA(16);
  35. ;pwr[0]=1;
  36. ;for (var i=0;i<9;i++){
  37. ; pwr[i+1]=pwr[i]*10;
  38. ;}
  39. ;dec[0]=.1;
  40. ;dec[1]=.01;
  41. ;dec[2]=.001;
  42. ;dec[3]=.0001;
  43. ;dec[4]=.00001;
  44. ;dec[5]=.000001;
  45. ;dec[6]=.0000001;
  46. ;dec[7]=.00000001;
  47. ;dec[8]=.000000001;
  48. ;dec[9]=.0000000001;
  49. ;dec[10]=.00000000001;
  50. ;dec[11]=.000000000001;
  51. ;dec[12]=.0000000000001;
  52. ;dec[13]=.00000000000001;
  53. ;dec[14]=.000000000000001;
  54. ;dec[15]=.0000000000000001;
  55. ;   
  56. ;var ns="01234567890";
  57. ;var cr="";
  58. ;var str="";
  59. ;
  60. ;function stn(){
  61. ; num=0;
  62. ; pos=str.indexOf(".");
  63. ; sfx="";
  64. ; if (pos>-1){
  65. ;  sfx=str.substring(pos+1,str.length);
  66. ;  str=str.substring(0,pos);
  67. ;  }
  68. ; strl=str.length;
  69. ; for (var i=strl-1;i>-1;i--){
  70. ;  cr=str.substring(i,i+1);
  71. ;  pos=ns.indexOf(cr);
  72. ;  num+=pos*pwr[strl-i-1];
  73. ;  }
  74. ;  if (sfx!=""&&sfx.length>dp){
  75. ;   pos=ns.indexOf(sfx.charAt(dp+1));
  76. ;   if (pos>4){
  77. ;    pos=ns.indexOf(sfx.charAt(dp));
  78. ;    sfx=sfx.substring(0,dp-1)+(pos+1);
  79. ;    }
  80. ;   }
  81. ;  if (sfx!=""){
  82. ;   for (var i=0;i<dp;i++){
  83. ;    cr=sfx.substring(i,i+1);
  84. ;    pos=ns.indexOf(cr);
  85. ;    num+=pos*dec[i];
  86. ;    }
  87. ;/*    sfx="";
  88. ;    sfx+=num;
  89. ;    pos=sfx.indexOf(".");
  90. ;    sfx=sfx.substring(pos+1,sfx.length);
  91. ;    if (sfx.charAt(dp+1)=="9"){
  92. ;     num+=dec[sfx.length-2];
  93. ;     } */
  94. ;  }
  95. ; }
  96. ;
  97. ;function testIt(form){
  98. ; str=document.isn.amt.value;
  99. ; fmtIt();
  100. ; bl=str.length+3;
  101. ; dp=2;
  102. ; stn();
  103. ; amt=num;
  104. ; str=document.isn.per.value;
  105. ; dp=4;
  106. ; stn();
  107. ; per=num;
  108. ; str=document.isn.months.value;
  109. ; dp=0;
  110. ; stn();
  111. ; months=num;
  112. ; if (months<1||months>999||per<.0001||per>99||amt<1||amt>pwr[9]){
  113. ;  alrt();
  114. ;  }
  115. ; else{
  116. ; computeForm();
  117. ; }
  118. ;}
  119. ;
  120. ;function computeForm(){
  121. ; ls="";
  122. ; isnnum=1;
  123. ; i=per/12/100;
  124. ; fpv=0;
  125. ; for (var j=0;j<months;j++)
  126. ;  isnnum=isnnum*(1+i);
  127. ;  tmp=(amt*isnnum*i)/(isnnum-1);
  128. ;  fpv+=tmp;
  129. ;  fcalc=((months*fpv)-amt);
  130. ;  
  131. ; prtSched();
  132. ; }
  133. ;
  134. ;function prtSched(){
  135. ; fpv+=.01;
  136. ; str="";
  137. ; str+=fpv;
  138. ; fmtIt();
  139. ; dp=2;
  140. ; stn();
  141. ; fpv=num;
  142. ; pct=per/12/100;
  143. ; if (bl<14){
  144. ;  bl=14;
  145. ;  }
  146. ; ls="Amortization Schedule: "+document.isn.months.value
  147. ; +" months to repay "+s+document.isn.amt.value
  148. ; +" at "+document.isn.per.value+"%."+rr+d+rr
  149. ; +"Payment       Payment       Interest      Principal     Balance"
  150. ; +rr
  151. ; +"Number        Amount        Amount        Reduction     Due"
  152. ; +rr+d+rr;
  153. ; for (var j=0;j<months;j++){
  154. ;  ntr=(amt*pct);
  155. ;  str="";
  156. ;  str+=ntr;
  157. ;  fmtIt();
  158. ;  ntr1=s+str;
  159. ;  prp=fpv-ntr;
  160. ;  if (prp>amt){
  161. ;   prp=amt;
  162. ;   }
  163. ;  str="";
  164. ;  str+=prp;
  165. ;  fmtIt();
  166. ;  prp1=s+str;
  167. ;  amt-=prp;
  168. ;  str="";
  169. ;  str+=amt;
  170. ;  fmtIt();
  171. ;  amt1=s+str;
  172. ;  if (fpv>(ntr+prp)){
  173. ;   fpv=ntr+prp;
  174. ;   }
  175. ;  str="";
  176. ;  str+=fpv;
  177. ;  fmtIt();
  178. ;  fpv1=s+str;
  179. ;  str="";
  180. ;  str+=(j+1)+".";
  181. ;  ls+=b.substring(0,2)+str+b.substring(0,12-str.length)
  182. ;  +fpv1+b.substring(0,14-fpv1.length)+ntr1
  183. ;  +b.substring(0,14-ntr1.length)+prp1
  184. ;  +b.substring(0,14-prp1.length)+amt1
  185. ;  +rr;
  186. ;  }
  187. ;  document.isn.sched.value=ls+d+rr
  188. ;  +"  * Interest calculated at 1/12th of annual interest rate on"
  189. ;  +rr+"    the remaining principal amount. (Rounding errors "
  190. ;  +"possible)"+rr+d+rr;
  191. ; }
  192. ;function fmtIt(){
  193. ; pos=str.indexOf(".");
  194. ; if (pos==0){
  195. ;  str="0"+str;
  196. ;  pos++;
  197. ;  }
  198. ; if (pos<0){
  199. ;  str+=".00";
  200. ;  pos=str.indexOf(".");
  201. ;  }
  202. ; str+="0000";
  203. ; str=str.substring(0,pos+4);
  204. ; cr=str.charAt(str.length-1);
  205. ; pos=ns.indexOf(cr);
  206. ; str=str.substring(0,str.length-1);
  207. ; if (pos>5){
  208. ;  fmtIt1();
  209. ;  }
  210. ; }
  211. ; function fmtIt1(){
  212. ;  for (var k=str.length-1;k>-1;k--){
  213. ;   cr=str.charAt(k);
  214. ;   posn=ns.indexOf(cr);
  215. ;   if (posn<0){
  216. ;    k--;
  217. ;   }
  218. ;   else{
  219. ;    str=str.substring(0,k)+ns.substring(posn+1,posn+2)
  220. ;    +str.substring(k+1,str.length);
  221. ;    if (posn!=9){
  222. ;     k=-1;
  223. ;    }
  224. ;   }
  225. ;  }
  226. ; }
  227. ;function alrt(){
  228. ; alert("You couldn't know. Months must be from"
  229. ; +" 1 to 999, Loan amount from 1 to "+pwr[9]
  230. ; +" and Interest from .001 to 99%");
  231. ;}
  232. ;//-->
  233. ;</script>
  234.  
  235.  
  236.  
  237. [BODY_TEXT]
  238. ;<!-- Your Body Copy Here -->
  239. ;
  240. ;<form name="isn">
  241. ;<table width="486" border="0" summary="">
  242. ;<tr><td colspan="3" valign="top" align="center">
  243. ;<img src="gr/a.gif" height="1" width="486" border="0" alt="">
  244. ;<br><b>`Caption`</b></td>
  245. ;<tr><td align="center">
  246. ;<img src="gr/a.gif" height="1" width="159" border="0" alt="">
  247. ;<br>Number of Months of Loan
  248. ;<br><img src="gr/a.gif" height="1" width="159" border="0" alt=""></td>
  249. ;<td align="center">
  250. ;<img src="gr/a.gif" height="1" width="159" border="0" alt="">
  251. ;<br>Simple Interest Rate
  252. ;<br><img src="gr/a.gif" height="1" width="159" border="0" alt=""></td>
  253. ;<td align="center">
  254. ;<img src="gr/a.gif" height="1" width="159" border="0" alt="">
  255. ;<br>Total Amount of Loan<br>
  256. ;<img src="gr/a.gif" height="1" width="159" border="0" alt=""></td>
  257. ;</tr>
  258. ;<tr><td align="center">
  259. ;<input type="text" name="months" value="12" size="5">
  260. ;<br><img src="gr/a.gif" height="1" width="159" border="0" alt=""></td>
  261. ;<td align="center">
  262. ;<input type="text" name="per" value="7.5" size="6">%
  263. ;<br><img src="gr/a.gif" height="1" width="159" border="0" alt=""></td>
  264. ;<td align="center">
  265. ;$<input type="text" value="1000" name="amt" size="25">
  266. ;<br><img src="gr/a.gif" height="1" width="159" border="0"></td></tr>
  267. ;<tr>
  268. ;<td colspan="3" align="center">
  269. ;<input type="button"
  270. ;value="Click Here to Get Amortization Schedule" onClick="testIt(this.form)">
  271. ;<br><img src="gr/a.gif" height="1" width="486" border="0">
  272. ;<br>After obtaining your amortization schedule in the
  273. ;window below, you must Mark (Control-a or Apple-a) the
  274. ;text, Copy (Control-c or Apple-c) and Paste it
  275. ;(Control-v or Apple-v) into a new word processing
  276. ;document on your system.  It cannot be printed out
  277. ;from this screen.
  278. ;<br><img src="gr/a.gif" height="1" width="486" border="0">
  279. ;<br><textarea name="sched" rows="22" cols="70">
  280. ;</textarea></td></tr>
  281. ;</table><p>
  282. ;</form>
  283.  
  284.  
  285. [`Caption`]
  286. Kind=S
  287. Value=Amortization Schedule for Your Purchase
  288.  
  289.  
  290.